#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
简化版行业指标数据提取工具
"""

import pandas as pd
import json
import sys
import os

def main():
    """主函数"""
    # 解析命令行参数
    args = sys.argv[1:]
    
    # 默认参数
    industry_keyword = None
    year = None
    output_file = None
    data_file = '行业均值/整理后的行业指标数据.xlsx'
    
    # 简单的参数解析
    i = 0
    while i < len(args):
        if args[i] == '--industry' and i + 1 < len(args):
            industry_keyword = args[i + 1]
            i += 2
        elif args[i] == '--year' and i + 1 < len(args):
            year = int(args[i + 1])
            i += 2
        elif args[i] == '--output' and i + 1 < len(args):
            output_file = args[i + 1]
            i += 2
        elif args[i] == '--help':
            print("""
行业指标数据提取工具

用法:
  python extract_simple.py --industry <关键词> --year <年份> [--output <文件>]

选项:
  --industry <关键词>  行业关键词（模糊匹配）
  --year <年份>        指定年份
  --output <文件>      输出JSON文件路径
  --help              显示帮助信息

示例:
  python extract_simple.py --industry 酒 --year 2023
  python extract_simple.py --industry 制造 --year 2022 --output result.json
            """)
            return
        else:
            i += 1
    
    # 检查必需参数
    if not industry_keyword and not year:
        print("错误: 请至少指定 --industry 或 --year 参数")
        print("使用 --help 查看帮助信息")
        return
    
    try:
        # 加载数据
        print(f"正在加载数据: {data_file}")
        df_data = pd.read_excel(data_file, sheet_name='整理后数据')
        print(f"数据加载完成: {len(df_data)} 条记录")
        
        # 内置指标分类
        indicator_mapping = {
            'EBITDA率(%)': '盈利能力分析',
            '净资产收益率(%)': '盈利能力分析',
            '总资产收益率(%)': '盈利能力分析',
            '销售营业利润率(%)': '盈利能力分析',
            '国有资本回报率(%)': '盈利能力分析',
            '经济增加值率(%)': '盈利能力分析',
            '资本保值增值率(%)': '盈利能力分析',
            '存货周转率(次)': '经营周转能力分析',
            '应收账款周转率(次)': '经营周转能力分析',
            '总资产周转率(次)': '经营周转能力分析',
            '流动资产周转率(次)': '经营周转能力分析',
            '带息负债比率(%)': '偿债能力分析',
            '资产负债率(%)': '偿债能力分析',
            '速动比率': '偿债能力分析',
            '现金流动负债比率(%)': '偿债能力分析',
            '已获利息倍数(倍)': '偿债能力分析',
            '盈余现金保障倍数(倍)': '偿债能力分析',
            '营业现金比率(%)': '偿债能力分析',
            '利润总额增长率(%)': '成长能力分析',
            '营业总收入增长率(%)': '成长能力分析',
            '技术投入比率(%)': '资本性支出分析',
            '研发经费投入强度(%)': '资本性支出分析',
            '百元收入支付的成本费用(元)': '成本控制分析',
            '两金占流动资产比重(%)': '成本控制分析',
            '全员劳动生产率(万元/人)': '人力资源效率分析'
        }
        
        # 筛选数据
        df_filtered = df_data.copy()
        
        if industry_keyword:
            mask = df_filtered['行业名称'].str.contains(industry_keyword, case=False, na=False)
            df_filtered = df_filtered[mask]
            print(f"按行业关键词 '{industry_keyword}' 筛选后: {len(df_filtered)} 条记录")
        
        if year:
            df_filtered = df_filtered[df_filtered['年份'] == year]
            print(f"按年份 {year} 筛选后: {len(df_filtered)} 条记录")
        
        if len(df_filtered) == 0:
            print("没有找到符合条件的数据")
            return
        
        # 添加指标大类
        df_filtered['指标大类'] = df_filtered['指标名称'].map(indicator_mapping)
        df_filtered['指标大类'] = df_filtered['指标大类'].fillna('未分类')
        
        # 重新排列列顺序
        columns_order = ['行业名称', '年份', '指标大类', '指标名称', '优秀值', '良好值', '平均值', '较低值', '较差值']
        df_result = df_filtered[columns_order]
        
        # 转换为JSON
        data_list = df_result.to_dict('records')
        for record in data_list:
            for key, value in record.items():
                if pd.isna(value):
                    record[key] = None
        
        result = {
            "query_info": {
                "industry_keyword": industry_keyword,
                "year": year,
                "total_records": len(data_list),
                "industries": sorted(df_filtered['行业名称'].unique().tolist()),
                "years": sorted(df_filtered['年份'].unique().tolist()),
                "indicators": sorted(df_filtered['指标名称'].unique().tolist()),
                "categories": sorted(df_filtered['指标大类'].unique().tolist())
            },
            "data": data_list
        }
        
        json_output = json.dumps(result, ensure_ascii=False, indent=2)
        
        # 输出结果
        if output_file:
            with open(output_file, 'w', encoding='utf-8') as f:
                f.write(json_output)
            print(f"结果已保存到: {output_file}")
        else:
            print("\n查询结果:")
            print(json_output)
            
    except Exception as e:
        print(f"错误: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    main()
